Telegram Group & Telegram Channel
🎮 Реализация очереди с помощью связного списка

Проблема: стандартные массивы для очереди могут привести к необходимости дорогостоящих операций сдвига элементов при удалении.

Решение: в книге Algorithms and Data Structures for OOP With C# автор предлагает реализовать очередь на основе связного списка, что позволяет эффективно добавлять элементы в конец и удалять с начала за O(1).

Пример кода:
public class Node<T>
{
public T Data;
public Node<T> Next;

public Node(T data)
{
Data = data;
Next = null;
}
}

public class QueueLinkedList<T>
{
private Node<T> front, rear;

public QueueLinkedList()
{
front = rear = null;
}

public void Enqueue(T item)
{
var newNode = new Node<T>(item);
if (rear == null)
{
front = rear = newNode;
return;
}
rear.Next = newNode;
rear = newNode;
}

public T Dequeue()
{
if (front == null)
throw new InvalidOperationException("Queue is empty.");

var data = front.Data;
front = front.Next;

if (front == null)
rear = null;

return data;
}
}


Преимущества:
— Нет затрат на сдвиг элементов
— Высокая производительность при операциях добавления и удаления
— Универсальная реализация для любых типов данных

➡️ Лучшее из мира IT-книг — у нас в @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/csharpproglib/5890
Create:
Last Update:

🎮 Реализация очереди с помощью связного списка

Проблема: стандартные массивы для очереди могут привести к необходимости дорогостоящих операций сдвига элементов при удалении.

Решение: в книге Algorithms and Data Structures for OOP With C# автор предлагает реализовать очередь на основе связного списка, что позволяет эффективно добавлять элементы в конец и удалять с начала за O(1).

Пример кода:

public class Node<T>
{
public T Data;
public Node<T> Next;

public Node(T data)
{
Data = data;
Next = null;
}
}

public class QueueLinkedList<T>
{
private Node<T> front, rear;

public QueueLinkedList()
{
front = rear = null;
}

public void Enqueue(T item)
{
var newNode = new Node<T>(item);
if (rear == null)
{
front = rear = newNode;
return;
}
rear.Next = newNode;
rear = newNode;
}

public T Dequeue()
{
if (front == null)
throw new InvalidOperationException("Queue is empty.");

var data = front.Data;
front = front.Next;

if (front == null)
rear = null;

return data;
}
}


Преимущества:
— Нет затрат на сдвиг элементов
— Высокая производительность при операциях добавления и удаления
— Универсальная реализация для любых типов данных

➡️ Лучшее из мира IT-книг — у нас в @progbook

BY Библиотека шарписта | C#, F#, .NET, ASP.NET


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/csharpproglib/5890

View MORE
Open in Telegram


Библиотека шарписта | C F NET ASP NET Telegram | DID YOU KNOW?

Date: |

Dump Scam in Leaked Telegram Chat

A leaked Telegram discussion by 50 so-called crypto influencers has exposed the extraordinary steps they take in order to profit on the back off unsuspecting defi investors. According to a leaked screenshot of the chat, an elaborate plan to defraud defi investors using the worthless “$Few” tokens had been hatched. $Few tokens would be airdropped to some of the influencers who in turn promoted these to unsuspecting followers on Twitter.

The lead from Wall Street offers little clarity as the major averages opened lower on Friday and then bounced back and forth across the unchanged line, finally finishing mixed and little changed.The Dow added 33.18 points or 0.10 percent to finish at 34,798.00, while the NASDAQ eased 4.54 points or 0.03 percent to close at 15,047.70 and the S&P 500 rose 6.50 points or 0.15 percent to end at 4,455.48. For the week, the Dow rose 0.6 percent, the NASDAQ added 0.1 percent and the S&P gained 0.5 percent.The lackluster performance on Wall Street came on uncertainty about the outlook for the markets following recent volatility.

Библиотека шарписта | C F NET ASP NET from sg


Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET
FROM USA